package java学习.第10章_多线程的入门;

import java.util.concurrent.TimeUnit;

/**
 * ClassName: E_线程的常用方法
 * Package: java学习.第10章_多线程
 * Description:
 *
 * @Author 张蛟龙
 * @Create 2023/3/18 18:25
 * @Version 1.0
 */
public class D_线程的常用方法 {
    public static void main(String[] args) {
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() +
                        "：线程执行的方法");
            }
        }, "线程名字");
        t.start();//运行线程
        t.getName();//获取线程名字
        Thread.currentThread().getName();//获取当前线程名字
        t.setName("新的线程名字");
        t.run();//线程执行的方法
        try {
            TimeUnit.SECONDS.sleep(1);//睡1秒
            //线程睡眠时间 单位毫秒  1000 = 1秒
            Thread.sleep(1L);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        Thread.yield();//放弃CPU执行权
        try {
            //调用者暂停，直到t执行完之后，执行
            t.join();
            Thread.currentThread().join();
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        t.isAlive();//判断此线程是否存活

        t.getPriority();//此线程优先级
        // 1最低   10最大  优先级不是越高就是必定考前执行，而是 获取的概率扫尾大一点而已
        t.setPriority(1);//设置此线程优先级

        //过时方法 不建议使用
        t.stop();//强行关闭此线程
        //两者容易产生死锁，不建议使用
        t.suspend();//挂起   会出现死锁
        t.resume();//结束挂起   进入就绪


    }
}
